<?php

//防止恶意调用
if (!defined('IN_MOD'))
{
    die('Hacking attempt');
}
/***************************
&& PHP自定义字符串中的变量名解析
&& 作用：用于后台添加内容代码时获取变量使用
^^ 使用于：后台【内容管理-简介模块-内容代码】
(( 使用范围：变量，一维数组，二维数组
** 作者：白屋之恋萧
** DATE：2014-11-4
** QQ：1159230549
** TEL:15057925329
** 主页：/moduleaq/www.15cy.cn/
$match = array();preg_match_all('/{\$(.*?)}/', $contenthtml, $match);foreach($match[1] as $key => $value) {
if(isset($$value)) {$contenthtml = str_replace($match[0][$key], $$value, $contenthtml);}}
***************************/
$phpvarok=1;
if($phpvarok)
{
	if($contenthtml)
	{
		$match = array();
		preg_match_all('/\(\$(.*?)\)/', $contenthtml, $match);// 匹配成功后的$match[0]为原格式{$parameter_default[field1]} $match[1]为匹配的内容格式parameter_default[field1]
		
		if(count($match))
		{
			foreach($match[1] as $key => $value)
			{
				preg_match_all('/\[(.*?)\]/', $value, $match2);// $match2[0][0]格式为[field1] $match2[1][0]格式为field1
				/*print_r($match2);
				Array
				(
					[0] => Array
						(
							[0] => [field1] // 解析模板中的一维数组{$parameter_default[field1]}
							[1] => [二维数组名] // 解析模板中的二维数组{$parameter_default[field1][二维数组名]}
						)
				
					[1] => Array
						(
							[0] => field1 // 解析模板中的一维数组{$parameter_default[field1]}
							[1] => [二维数组名] // 解析模板中的二维数组{$parameter_default[field1][二维数组名]}
						)
				
				)*/
				// 获取数组前缀class_list删除[$class1]
				if(isset($match2[1][0]))
				{
					$value = str_replace($match2[0][0], '', $value);// class_list[url]
				}
				
				// 获取数组前缀class_list删除[url]
				if(isset($match2[1][1]))
				{
					$value = str_replace($match2[0][1], '', $value);// class_list
				}
				
				// 组合数组$class_list
				$value=$$value;// $ => $ | $value => class_list
				
				if(!empty($value))
				{
					// 获取解析后的一维数组名$class1 $class_list[解析此变量]
					if(isset($match2[1][0]))
					{
						$valuekey1=$match2[1][0];// $class1
						
						// 将数组名$class1替换为class1【解析字符串$class1】
						preg_match_all('/\$(.+)/', $valuekey1, $match3);// $match3[0][0]格式为$class1 $match3[1][0]格式为class1
						@$valuekey1r=$match3[1][0];// class1
						if($valuekey1r)$valuekey1=$$valuekey1r;// $ => $ | $valuekey1r => class1
						
						// 组合数组$class_list[$class1]
						@$valuer=$value[$valuekey1];
						
						// 获取解析后的二维数组名url $class_list[$class1][解析此变量]
						if(isset($match2[1][1]))
						{
							$valuekey2=$match2[1][1];// $url
							
							// 将数组名url替换为url【解析字符串url】
							preg_match_all('/\$(.+)/', $valuekey2, $match4);
							@$valuekey2r=$match4[1][1];// url
							if($valuekey2r)$valuekey2=$$valuekey2r;// $ => $ | $valuekey2r => url
		
							// 组合数组$class_list[$class1][url]
							@$valuer=$value[$valuekey1][$valuekey2];
						}
						
						// 获取组合成功数组
						$value=$valuer;
					}		
				}
				
				// 【替换原有字段串，重要赋值】输出结果数组内容
				$valuedata = !empty($value) ? $value : '';// 修复空数组时输出Array
				$contenthtml = str_replace($match[0][$key], $valuedata, $contenthtml);// $match[0][$key] => {$parameter_default[field1]}
			}
		}
	}
}
/***************************/
?>